package banco.negocio;

import banco.negocio.excecoes.AtributoInvalidoException;

public class Conta {
	private String numero;
	private float saldo;
	private Cliente titular;

	public Conta(String numero, Cliente titular)
			throws AtributoInvalidoException {
		this.setNumero(numero);
		this.setTitular(titular);
	}

	@Override
	public boolean equals(Object obj) {
		boolean resultado = false;
		if (obj != null && obj instanceof Conta) {
			Conta outro = (Conta) obj;

			resultado = numero.equals(outro.numero);
		}
		return resultado;

	}

	public String getNumero() {
		return numero;
	}

	public float getSaldo() {
		return saldo;
	}

	public Cliente getTitular() {
		return titular;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((numero == null) ? 0 : numero.hashCode());
		return result;
	}

	public void setNumero(String numero) throws AtributoInvalidoException {
		if (numero == null) {
			throw new AtributoInvalidoException("Numero Nulo");
		}
		this.numero = numero;
	}

	public void setSaldo(float saldo) {
		this.saldo = saldo;
	}

	public void setTitular(Cliente titular) throws AtributoInvalidoException {
		if (titular == null) {
			throw new AtributoInvalidoException("Titular Nulo");
		}
		this.titular = titular;
	}

}
